home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1988 January
/
Ahoy_Magazine_88-01_1988_Double_L.d64
/
Designs C-64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
69 lines
1 rem ===============================
2 rem iterative designs 64
3 rem c-64 version
4 rem rupert report #49
5 rem
9 rem ====== for c-64 only! =======
10 gosub 1000 :rem initialize graphics
30 for x=0 to 319
40 s=1+tan(0.005*x)
50 for y=0 to 199 step s
60 gosub 2000 :rem set pixel at x,y
70 next y
80 next x
90 get a$ : if a$="" then 90
100 gosub 3000
110 end
950 rem ********************************
960 rem
970 rem >>> initialize bit map mode <<<
980 rem
990 rem set & reset bit functions
1000 def fnsb(n)=peek(mm) or 2^n
1010 def fnrb(n)=peek(mm) and (255-2^n)
1020 vv=53248 :rem vic-ii register 0
1030 :rem >>> put bit map at 8192 <<< (set bit 3 of vic register 24)
1040 mm=vv+24 : poke mm,fnsb(3)
1050 :rem >>> select bit map mode <<< (set bit 5 of vic register 17)
1060 mm=vv+17 : poke mm,fnsb(5)
1070 base=8192 :rem start bit map memory
1080 :rem >>> clear bit map <<<
1090 gosub 4000
1100 :rem > select colors c1 and c0 <
1110 c1=1 : c0=0 : cc=16*c1 + c0
1120 :rem fill screen memory with color
1130 for mm=1024 to 2023:poke mm,cc:next
1140 return
1150 :
1970 rem ==============================
1980 rem > turn on pixel at (x,y) <<<
1990 rem ==============================
2000 bit=7-(x and 7)
2010 mm=base+320*int(y/8)+8*int(x/8)+(y and 7)
2020 poke mm,fnsb(bit)
2030 return
2040 :
2970 rem ==========================
2980 rem >>> reset bit map mode <<<
2990 rem ==========================
3000 mm=vv+17 : poke mm,fnrb(5)
3010 rem restore screen memory base
3020 mm=vv+24 : poke mm,fnrb(3)
3030 return
3960 :
3970 ============================
3980 >>> clear bit map screen <<<
3990 ============================
4000 for m=828 to 828+43
4010 read b : poke m,b
4020 ck=ck+b
4030 next
4040 if ck<>5133 then print "data error in lines 4060 - 4110" : stop
4050 sys 828: return
4060 data 76,68,3,0,32,31,64,0
4070 data 173,63,3,133,251,173,64,3
4080 data 133,252,174,65,3,160,0,173
4090 data 67,3,136,145,251,208,251,230
4100 data 252,202,48,7,208,244,172,66
4110 data 3,208,239,96